/**
 * 日历
 */
var PrizeCalendar = function() {
    var isOff = false;//记录事件是否被off了
    var sign=false;
    var ctrl, form, startDate, endDate;

    /**
     * 双击  鼠标按下ctrl
     */
    var uiInit = function() {
        $(window).keydown(function(event){
            if(event.keyCode==17){
                 ctrl = true;
            }
        }).keyup(function(event){
            if(event.keyCode==17){
                ctrl = false;
            }
        });

        $('.dailyPrize td.this-month').on('dblclick', function(event){
            if ( !$(this).hasClass('selected')) {
                clear();
                isOff=true;
                $(this).addClass('selected');
                show($(this));
            }
            event.stopPropagation();
        });

        /* Ctrl按住点击 */
        $('.dailyPrize td.this-month').on('click',function(event){
            if(ctrl==true){
                $(this).toggleClass("selected");
                if($("td.selected").length>0){
                    show($(this));
                }else{
                    clear();
                }
            }
            event.stopPropagation(); 
        });
    }

    /**
     * 鼠标按住不放
     */
    var mouseDown = function() {
        $('.dailyPrize td.this-month').on('mousedown',function(){
            if(!isOff){
                sign=true;
                if($(this).hasClass('prev-month')){
                    startDate=0;
                }
                else if($(this).hasClass('this-month')){
                    startDate=parseInt($(this).find('.day-date').text());
                }
                else if($(this).hasClass('next-month')){
                    startDate=31;
                }
            }
        });

        $(document).mouseup(function(){
            if($(".selected").length>1 && (ctrl === true || sign === true)) {

                show();
            }
            sign=false;
        });

        $('.dailyPrize-inner td').on('mouseover',function(e){
            if(sign){
                if($(this).hasClass('prev-month')){
                    endDate=0;
                }
                else if($(this).hasClass('this-month')){
                    endDate=parseInt($(this).find('.day-date').text());
                }
                else if($(this).hasClass('next-month')){
                    endDate=31;
                }
                if (startDate - endDate > 0) {
                    calendarFor(endDate,startDate);
                } else {
                      calendarFor(startDate,endDate);
                }
            }
        });

        // 鼠标滑过td
        $('.dailyPrize td.this-month').hover(function(){
            if(!sign && !isOff){
                $(this).find('.info2').show();
            }
        },function(){
            $(this).find('.info2').hide();
        });
    }

    /**
     * 
     */
    var calendarFor = function(start,end){
        var doc=$('.dailyPrize-inner td.this-month');
        for (var i=1;i<=doc.length;i++) {
            var calendar= parseInt(doc.eq(i-1).find(".day-date").text());
            if(calendar>=start&&calendar<=end){
                doc.eq(i-1).addClass("selected");
            }else{
                doc.eq(i-1).removeClass("selected");
            }
        };
    }

    /**
     * 清除
     */
    var clear = function() {
        sign=false;
        isOff=false;
        $('.dailyPrize td.this-month').removeClass("selected").removeClass("append_r");
        return true;
    }

    /**
     * 关闭日历
     */
    var close = function() {
         $(".prize-num").delegate(".cancelBtn","click",function(event){
            clear();
            $('#prize-form').addClass('prize-num-wrap');
            event.stopPropagation(); 
        });
    }

    /**
     * 显示编辑表单
     */
    var show = function() {
        var selected=$(".selected");
        var month = $('.dailyPrize-header').text();
        var date = '';
        var sdate = month + '-' + selected.eq(0).find('.day-date').text();
        var lastDay=selected.eq(selected.length-1);
        for (var i = 0; i < selected.length; i++) {
            var calendar= parseInt(selected.eq(i).find(".day-date").text());
            date += month + '-' + calendar + ',';
        }

        $('input[name=date]').val(date); // 将日期传递给表单
        $('#myModalLabel').text('奖品数量' + sdate + ' to ' + month + '-' + lastDay.find('.day-date').text()); //表单标题 提示用户
        var height = parseInt(lastDay.position().top + lastDay.height() + 47);
        var width  = parseInt(lastDay.position().left + 40);
        $('#prize-form').css({'left': width,'top': height, 'position': 'absolute'}).removeClass('prize-num-wrap');

        $('.this-month').removeClass('append_r');
        lastDay.addClass("append_r");
        isOff = true;
        
        if(parseInt(lastDay.index()) >= 4){
            $(".prize-num").addClass("atcle-lefter"); //现在在左边
        } else {
            $(".prize-num").removeClass("atcle-lefter"); //显示在右边
        }
    }

    return {
        init : function() {
            uiInit();
            close();
            mouseDown();
        }
    }
}();

jQuery(function(){ PrizeCalendar.init(); });